package com.istock.union.user.service;

import java.util.List;

import com.istock.base.common.api.model.PageInfo;
import com.istock.union.user.model.OrderByModel;
import com.istock.union.user.model.UserOnlineInfo;

/**用户在线服务
 * @author senvon
 *
 */
public interface UserOnlineInfoService {

	/**插入一条用户在线记录
	 * @param userOnlineInfo
	 */
	public void insertUserOnline(UserOnlineInfo userOnlineInfo);
	
	/**删除一条用户在线记录
	 * @param sessionId
	 */
	public void removeUserOnline(String sessionId) ;
	
	/**页面查询用户在线记录
	 * @param loginName
	 * @param deptList
	 * @param ipaddr
	 * @param pageInfo
	 * @return
	 */
	public List search(String loginName, List<String> deptList, String ipaddr, PageInfo pageInfo , OrderByModel orderBy);
	
	/**在经过check以后的sessionId,如果在缓存里面不存在,则进行删除
	 * 
	 * @param sessionId
	 */
	public void remveUserOnlineInfo(String[] sessionIds);

	/**
	 * 根据时间范围和状态查询
	 * 
	 * @param less
	 * @param greater
	 * @param statusList
	 * @return
	 */
	public List<UserOnlineInfo> selectUserOnline(Integer less, Integer greater, List<Integer> statusList);
	
	/**按照sessionId更新在线用户信息
	 * @param userOnlineInfo
	 */
	public void updateUserOnline(String sessionId , UserOnlineInfo userOnlineInfo);
	
	/**
	 * 清除过期的在线用户信息
	 */
	public int clearExpireToken();
}
